
#ifndef _RPM_TAGS_H
#define _RPM_TAGS_H 1

typedef enum
{
    RPM_UNKNOWN_TYPE=-1,
    RPM_NULL_TYPE = 0,
    RPM_CHAR_TYPE = 1,
    RPM_INT8_TYPE   =2,
    RPM_INT16_TYPE   =3,
    RPM_INT32_TYPE  =4,
    RPM_INT64_TYPE  =5,
    RPM_STRING_TYPE =6,
    RPM_BIN_TYPE    =7,
    RPM_STRING_ARRAY_TYPE   =8,
    RPM_I18NSTRING_TYPE=9,
} RpmHeaderElementType;

typedef enum
{
    rpmScriptPreinstall = 0,
    rpmScriptPostinstall,
    rpmScriptPreuninstall,
    rpmScriptPostuninstall,
} RpmScript;

#define DEF_TAG( X, Y ) RPMTAG_ ## X = Y,
#define HIDE_HDRTAG    1
#define HIDE_RPMSIGTAG 0

/* LSB Specified tags. */
typedef enum rpmTag_e {
#include "rpm_tag_ids.h"
} RpmTag;

typedef struct
{
    const char * name;
    RpmTag value;
} RpmTagInfo;

#undef DEF_TAG
#define DEF_TAG( X, Y ) { .name=# X, .value=Y },
static RpmTagInfo tagInfo[] =  {
#include "rpm_tag_ids.h"
};

#endif
